<?php

declare(strict_types=1);

namespace app\yperp\command;

use app\admin\model\Menu;
use app\user\model\Role;
use app\yperp\common\ArrayHelpers;
use app\yperp\common\ChanghongList;
use app\yperp\common\MyWebDriver;
use app\yperp\common\Redis;
use app\yperp\model\Supplier;
use Fairy\Html2WordMaker;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\Output;
use think\Db;
use think\Queue;

use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\Shared\Html;
use util\Tree;

class buildmenu extends Command
{


    protected $output;

    protected $input;
    protected $driver;
    protected $windows = [];
    protected $cookies = [];
    protected function configure()
    {
        // 指令配置
        $this->setName('buildmenu')
            ->setDescription('更新 menu.php');
    }

    protected function execute(Input $input, Output $output)
    {
        // $menus[] = [
        //     'title' => '首页',
        //     'icon' => 'fa fa-home',
        //     'url' => 'admin/index/index',
        //     'child' => [
        //         [
        //             'title' => '首页',
        //             'icon' => 'fa fa-home',
        //             'url' => 'admin/index/index',
        //             'child' => [
        //                 [
        //                     'title' => '首页',
        //                     'icon' => 'fa fa-home',
        //                     'url' => 'admin/index/index',
        //                     'child' => [
        //                         [
        //                             'title' => '首页',
        //                             'icon' => 'fa fa-home',
        //                             'url' => 'admin/index/index',
        //                             'child' => [
        //                                 [
        //                                     'title' => '首页',
        //                                     'icon' => 'fa fa-home',
        //                                     'url' => 'admin/index/index',
        //                                 ]
        //                             ]
        //                         ]
        //                     ]
        //                 ]
        //             ]
        //         ],
        //         [
        //             'title' => '首页',
        //             'icon' => 'fa fa-home',
        //             'url' => 'admin/index/index',
        //             'child' => [
        //                 [
        //                     'title' => '首页',
        //                     'icon' => 'fa fa-home',
        //                     'url' => 'admin/index/index',
        //                     'child' => [
        //                         [
        //                             'title' => '首页',
        //                             'icon' => 'fa fa-home',
        //                             'url' => 'admin/index/index',
        //                             'child' => [
        //                                 [
        //                                     'title' => '首页',
        //                                     'icon' => 'fa fa-home',
        //                                     'url' => 'admin/index/index',
        //                                 ]
        //                             ]
        //                         ]
        //                     ]
        //                 ]
        //             ]
        //         ]
        //     ]
        // ];

        // try {

        //     $content = " <?php return  ";

        //     $content .= ArrayHelpers::getArrayContent($menus,true);

        //     // $content .=  "];";

        //     // echo $content;
        //     @unlink('./text.php');
        //     file_put_contents('./text.php', $content);

        //     //code...
        // } catch (\Throwable $th) {
        //     dump($th->getMessage());
        //     dump($th->getTraceAsString());
        // }


        // die;
        //指令输出
        $this->input = $input;
        $this->output = $output;

        // 获取顶级节点下的所有节点
        $map = [
            'status' => 1,
            'module' => 'yperp'
        ];
        // 非开发模式，只显示可以显示的菜单
        if (config('develop_mode') == 0) {
            $map['online_hide'] = 0;
        }
        $menus = Menu::where($map)->order('sort,id')->column('id,pid,module,title,url_value,url_type,url_target,online_hide,icon,params,sort');

        // 解析模块链接
        foreach ($menus as $key => &$menu) {

            if ($menu['url_value'] != '' && ($menu['url_type'] == 'module_admin' || $menu['url_type'] == 'module_home')) {
                $menu['url_value'] = $menu['url_type'] == 'module_admin' ? admin_url($menu['url_value'], $menu['params'],false) : home_url($menu['url_value'], $menu['params'],false);
            }
            //删除$menu['url_value']的第一个字符
            $menu['url_value'] = ltrim($menu['url_value'], '/');
        }
        $menus = Tree::toLayer($menus, 0);

        try {

            $content = " <?php return  ";

            $content .= ArrayHelpers::getArrayContent($menus, ['id', 'pid', 'module'], true);

            // $content .=  "];";

            echo $content;
            @unlink('./text.php');
            file_put_contents('./text.php', $content);

            //code...
        } catch (\Throwable $th) {
            dump($th->getMessage());
            dump($th->getTraceAsString());
        }
    }

}
